package com.atguigu.proxy.staticProxy;

/**
 * @program: design-patterns
 * @author: yangshen
 * @description: 代理对象, 静态代理
 * @create: 2022-02-24 22:15
 **/
public class TeacherDaoProxy {

    /**
     * 目标对象
     * 通过聚合接口，来实现聚合被代理对象 TeacherDao
     */
    private final ITeacherDao target;

    public TeacherDaoProxy(ITeacherDao target) {
        this.target = target;
    }

    /**
     * 代理的实现
     * 在代理的过程中，可以对目标方法前后 增加一些额外的功能
     */
    public void teach(){
        System.out.println("代理开始，完成某些操作");
        target.teach();
        System.out.println("提交");
    }
}
